package com.neusoft.yiyang.bed.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.neusoft.yiyang.common.entity.bed.Bed;
import com.neusoft.yiyang.common.entity.bed.vto.BedBedUsage;
import feign.Param;

import java.util.List;

public interface BedMapper extends BaseMapper<Bed> {

    // 获取指定楼栋和楼层的所有不同房间号
    List<String> getDistinctRoomsByFloor(@Param("buildingNo") Integer buildingNo,
                                         @Param("floor") Integer floor);

    // 获取指定房间的可用床位（新增方法）
    List<Bed> getAvailableBedsByRoom(@Param("buildingNo") Integer buildingNo,
                                     @Param("floor") Integer floor,
                                     @Param("roomNumber") String roomNumber);

    // 根据参数查询床位（不限制状态）
    Bed selectByParams(
            @Param("buildingNo") Integer buildingNo,
            @Param("floor") Integer floor,
            @Param("roomNumber") String roomNumber,
            @Param("bedNo") Integer bedNo
    );

    // 宫
    List<Bed> selectByFloorId(Integer floor);

    // 宫查询BedBedUsage中开始日期最晚的记录
    List<BedBedUsage> getBedBedUsageLatest();

    List<Integer> getFreeFloor();

    List<String> getFreeRoom(Integer floorNumber);

    List<Integer> getFreeBed(String roomNumber);
}
